# Randomkit 1.6
# Copyright J.S. Roy (js@jeannot.org), 2003-2006
# See the LICENSE file for copyright information.
# @(#) $Jeannot: Makefile,v 1.19 2006/02/20 18:57:48 js Exp $

# Default target
default: test

# Build the randomkit library
librandomkit.a: rk_mt.o rk_sobol.o rk_primitive.o rk_isaac.o
	$(AR) r librandomkit.a rk_mt.o rk_sobol.o rk_primitive.o  rk_isaac.o

# Test the correctness of the library
randomkit_test: randomkit_test.o librandomkit.a
	$(CC) $(CFLAGS) -o randomkit_test randomkit_test.o -lm -L. -lrandomkit

test: randomkit_test
	$(RUN) ./randomkit_test

# Various examples
# List primitive polynomials
# On Windows, you must add getopt.o
list_primitive: list_primitive.o librandomkit.a
	$(CC) $(CFLAGS) -o list_primitive list_primitive.o -lm -L. -lrandomkit

do_list_primitive: list_primitive
	$(RUN) ./list_primitive 10

# MC estimation of the volume of a ball
randomkit_example: randomkit_example.o librandomkit.a
	$(CC) $(CFLAGS) -o randomkit_example randomkit_example.o -lm \
		-L. -lrandomkit

do_randomkit_example: randomkit_example
	$(RUN) ./randomkit_example

# MC estimation of the volume of a ball using ISAAC
isaac_example: isaac_example.o librandomkit.a
	$(CC) $(CFLAGS) -o isaac_example isaac_example.o -lm \
		-L. -lrandomkit

do_isaac_example: isaac_example
	$(RUN) ./isaac_example

# RQMC estimation of the volume of a ball
sobol_example: sobol_example.o librandomkit.a
	$(CC) $(CFLAGS) -o sobol_example sobol_example.o -lm -L. -lrandomkit

do_sobol_example: sobol_example
	$(RUN) ./sobol_example

# Compile all examples
examples: list_primitive randomkit_example sobol_example isaac_example

# Execute all examples
do_examples: do_list_primitive do_randomkit_example do_sobol_example \
	do_isaac_example

# Utilities
clean:
	rm -f *.o librandomkit.a randomkit_test sobol_example \
	randomkit_example list_primitive isaac_example

depend:
	makedepend -Y rk_mt.c rk_sobol.c rk_primitive.c rk_isaac.c \
		randomkit_test.c list_primitive.c \
		randomkit_example.c sobol_example.c isaac_example.c 2> /dev/null

# Header files dependencies generated by makedepend
# DO NOT DELETE

rk_mt.o: randomkit.h rk_mt.h rk_sobol.h rk_primitive.h rk_isaac.h
rk_sobol.o: rk_sobol.h rk_mt.h rk_primitive.h
rk_primitive.o: rk_primitive.h
rk_isaac.o: rk_isaac.h rk_mt.h
randomkit_test.o: randomkit.h rk_mt.h rk_sobol.h rk_primitive.h rk_isaac.h
list_primitive.o: randomkit.h rk_mt.h rk_sobol.h rk_primitive.h rk_isaac.h
randomkit_example.o: randomkit.h rk_mt.h rk_sobol.h rk_primitive.h rk_isaac.h
sobol_example.o: randomkit.h rk_mt.h rk_sobol.h rk_primitive.h rk_isaac.h
isaac_example.o: randomkit.h rk_mt.h rk_sobol.h rk_primitive.h rk_isaac.h
